/**
 * @author 黄波
 * 创建日期：2011Sep 15, 2011
 * TODO// N/A
 */
package com.platform.common.bo;

import java.util.List;

import com.platform.dao.BaseDao;
import com.platform.pojo.DirProperty;
import com.platform.pojo.SchoolProperty;

public class CommonBo {
	
	private static CommonBo instance;
	static {
		instance = new CommonBo();
	}
	private CommonBo() {
	}
	
	public static CommonBo getInstance() {
		return instance;
	}
	
	/**
	 * 根据父id查询子属性列表
	 * @param superId
	 * @return
	 */
	public List<SchoolProperty> getSchoolProperties(String superId) {
		String hql = "from SchoolProperty where superId=" + superId;
		return BaseDao.getList(hql);
	}
	
	/**
	 * 根据是否班级，查询列表
	 * @param superId
	 * @return
	 */
	public List<SchoolProperty> getclasses(String isClass) {
		String hql = "from SchoolProperty where isClass=" + isClass;
		return BaseDao.getList(hql);
	}
	
	/**
	 * 添加一个学校属性
	 * @param sp
	 * @return
	 */
	public boolean addSchoolProperty(SchoolProperty sp) {
		return BaseDao.add(sp);
	}
	
	/**
	 * 获得一个学校属性
	 * @param id
	 * @return
	 */
	public SchoolProperty getSchoolProperty(String id) {
		String hql = "from SchoolProperty where id=" + id;
		return (SchoolProperty)BaseDao.getUniqueResult(hql);
	}

	/**
	 * 更新一个学校属性
	 * @param sp
	 * @return
	 */
	public boolean updateSchoolProperty(SchoolProperty sp) {
		return BaseDao.update(sp);
	}
	
	
	/**
	 * 更新班级人数
	 * @param classId
	 * @param num
	 * @return
	 */
	public boolean updateClassNum(String classId, Integer num) {
    	SchoolProperty item = getSchoolProperty(classId);
    	if(item != null) {
    		item.setClassNum(item.getClassNum() + num);
        	return updateSchoolProperty(item);
    	}
    	return false;
	}
	
	/**
	 * 删除一个学校属性
	 * @param id
	 * @return
	 */
	public boolean deleteSchoolProperty(String id) {
		String sql = "DELETE FROM school_property WHERE id=" + id;
		return BaseDao.executeSql(sql);
	}
	
	/**
	 * 获得所有的默认目录
	 * @return
	 */
	public List<DirProperty> getDirs() {
		String hql = "from DirProperty";
		return BaseDao.getList(hql);
	}
	
	/**
	 * 根据父id获得目录
	 * @param superId
	 * @return
	 */
	public List<DirProperty> getDirs(String superId) {
		String hql = "from DirProperty where superId=" + superId;
		return BaseDao.getList(hql);
	}
	
	/**
	 * 添加目录
	 * @param obj
	 * @return
	 */
	public boolean addDir(DirProperty obj) {
		return BaseDao.add(obj);
	}
	
	/**
	 * 获得目录信息
	 * @param id
	 * @return
	 */
	public DirProperty getDir(String id) {
		return (DirProperty)BaseDao.getUniqueResult("from DirProperty where id=" + id);
	}
	
	/**
	 * 更新目录信息
	 * @param obj
	 * @return
	 */
	public boolean updateDir(DirProperty obj) {
		return BaseDao.update(obj);
	}
	
	/**
	 * 删除文件目录
	 * @param id
	 * @return
	 */
	public boolean deleteDir(String id) {
		return BaseDao.executeSql("DELETE FROM dir_property WHERE id=" + id);
	}
}
